home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
011
/
brutil.arc
/
LAST.ASM
< prev
next >
Wrap
Assembly Source File
|
1988-05-18
|
2KB
|
100 lines
BUFSIZE EQU 32768
CODE SEGMENT
ASSUME CS:CODE,DS:CODE
ORG 100H
START: CALL GETCHR
JZ ERXIT
START1: MOV CX,0
MOV DI,OFFSET STR3+2
MOV WORD PTR STR4,1
LOOP3: CALL GETCHR
JZ OKXIT
CMP AL,13
JZ ENDLIN
STOSB
INC CX
MOV WORD PTR STR3,CX
JMP LOOP3
ERXIT: MOV AX,4C01H
INT 21H
OKXIT: CMP BYTE PTR DS:5DH,'-'
JZ OKXIT1
MOV CX,WORD PTR STR3
OR CX,CX
JZ NOT3A
MOV DX,OFFSET STR3+2
CALL PUTLIN
NOT3A: MOV CX,2
MOV DX,OFFSET STR4+2
CALL PUTLIN
OKXIT1: MOV AX,4C00H
INT 21H
ENDLIN: MOV WORD PTR STR3,CX
CALL GETCHR
JZ OKXIT
MOV WORD PTR STR4,2
CMP AL,10
JZ BYPLF
MOV WORD PTR STR4,1
BYPLF: PUSH WORD PTR STR4
CALL GETCHR
JZ OKXIT
POP WORD PTR STR4
CMP BYTE PTR DS:5DH,'-'
JNZ START1
OR CX,CX
JZ NOT3
MOV DX,OFFSET STR3+2
CALL PUTLIN
NOT3: MOV CX,WORD PTR STR4
MOV DX,OFFSET STR4+2
CALL PUTLIN
JMP START1
GETCHR: CMP WORD PTR STR4,1
JNZ NOPREV
MOV AL,LASTCH
MOV WORD PTR STR4,2
JMP SHORT NOREAD
NOPREV: PUSH CX
MOV CX,BUFLEFT
OR CX,CX
JNZ RDCHR
SUB BX,BX
MOV CX,BUFSIZE
MOV DX,OFFSET CHAR
MOV AH,63
INT 21H
OR AX,AX
POP CX
JZ GETXIT
MOV SI,OFFSET CHAR
PUSH CX
MOV CX,AX
RDCHR: LODSB
DEC CX
MOV BUFLEFT,CX
POP CX
MOV LASTCH,AL
NOREAD: CMP AL,26
GETXIT: RET
PUTLIN: MOV BX,1
MOV AH,64
INT 21H
RET
BUFLEFT DW 0
LASTCH DB ?
STR4 DW 2
DB 13,10
STR3 LABEL BYTE
CHAR EQU STR3+512
CODE ENDS
END START
4
INT 21H
RET
BUFLEFT DW 0
LASTCH DB ?
STR4 DW 2
DB 13,10
STR3 LABEL BYTE
CHAR EQU STR3+